upgrade: Support --allow-downgrade again
authorColin Walters <walters@verbum.org>
Tue, 1 Apr 2014 02:27:34 +0000 (22:27 -0400)
committerColin Walters <walters@verbum.org>
Tue, 1 Apr 2014 02:27:56 +0000 (22:27 -0400)
This was unintentially dropped with the OstreeSysrootUpgrader rebase.

src/libostree/ostree-sysroot-upgrader.c
src/ostree/ot-admin-builtin-upgrade.c

index c262f2b802bd88b4d28322840142dac58a791d58..b62f8d46b546b46cefe3c3831894f2ee318da80a 100644 (file)
@@ -464,8 +464,11 @@ ostree_sysroot_upgrader_pull (OstreeSysrootUpgrader  *self,
     }
   else
     {
+      gboolean allow_older = (upgrader_flags & OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_ALLOW_OLDER) > 0;
+
       *out_changed = TRUE;
-      if (from_revision)
+
+      if (from_revision && !allow_older)
         {
           if (!ostree_sysroot_upgrader_check_timestamps (repo, from_revision,
                                                          self->new_revision,
index a2de168db0c0cf53dc835c3417c46459ee4b5cb0..e6da241c1d5a338220474b319261d6b1058bbdf0 100644 (file)
@@ -61,6 +61,7 @@ ot_admin_builtin_upgrade (int argc, char **argv, OstreeSysroot *sysroot, GCancel
   GSConsole *console;
   gs_unref_object OstreeAsyncProgress *progress = NULL;
   gboolean changed;
+  OstreeSysrootUpgraderPullFlags upgraderpullflags = 0;
 
   context = g_option_context_new ("Construct new tree from current origin and deploy it, if it changed");
   g_option_context_add_main_entries (context, options, NULL);
@@ -83,7 +84,11 @@ ot_admin_builtin_upgrade (int argc, char **argv, OstreeSysroot *sysroot, GCancel
       progress = ostree_async_progress_new_and_connect (ot_common_pull_progress, console);
     }
 
-  if (!ostree_sysroot_upgrader_pull (upgrader, 0, 0, progress, &changed,
+  if (opt_allow_downgrade)
+    upgraderpullflags |= OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_ALLOW_OLDER;
+
+  if (!ostree_sysroot_upgrader_pull (upgrader, 0, upgraderpullflags,
+                                     progress, &changed,
                                      cancellable, error))
     goto out;